{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Confusion Matrix"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Utility function for visualizing confusion matrices via matplotlib"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "> `from mlxtend.plotting import plot_confusion_matrix`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Overview"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Confusion Matrix"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For more information on confusion matrices, please see [`mlxtend.evaluate.confusion_matrix`](../evaluate/confusion_matrix.md)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### References\n",
    "\n",
    "- -"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 1 - Binary"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQMAAAEGCAYAAABhHPB4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAANT0lEQVR4nO3dfZBV9XnA8e8DiIKi6Qp0okhAgoqSFkZHY4UEG+1AamNV0kiiSIgvSbXWJCSaqYO1ySST1sw0o2kaEilaGhKNaSWYaKy1vuAbGA1iFTWi5cUEiJOEWDvC+PSP/SE3ZNk9azn3LPD9zOzsOefevefZ2dnv3nP2vkRmIkn9mh5AUt9gDCQBxkBSYQwkAcZAUjGg6QFaxYBBGQOHND2GemHiuJFNj6BeePHFF9i0aVN0dVnfisHAIex75J81PYZ6YenD1zU9gnrhpBOO2+llHiZIAoyBpMIYSAKMgaTCGEgCjIGkwhhIAoyBpMIYSAKMgaTCGEgCjIGkwhhIAoyBpMIYSAKMgaTCGEgCjIGkwhhIAoyBpMIYSAKMgaTCGEgCjIGkwhhIAoyBpMIYSAKMgaTCGEgCjIGkwhhIAoyBpMIYSAKMgaTCGEgCjIGkwhhIAoyBpMIYSAKMgaTCGEgCjIGkwhhIAoyBpMIYSAKMgaTCGEgCjIGkwhhIAoxB7fr1Cx5cdDm3fPmjTY+iCi46fzYjDxnOsRPGNz1K29Uag4iYGhGrIuK5iLiizn31VZd88GRWrf5Z02OoonPPm8WtS25veoxG1BaDiOgPfAWYBhwNzIiIo+vaX1906PC3MHXSMfzTvz7Q9CiqaNLkd9HR0dH0GI2o857B8cBzmfl8Zr4GfAs4vcb99Tl/96mz+Ksv/xuvv55NjyL1qM4YHAqsaVlfW7b9hoi4MCKWR8Ty3PpqjeO017TJ49nw8mYee2pNz1eW+oABNd52dLHtt/5EZuY8YB5Av8HD95g/oSdOOJzT3v0Opk46hn0H7sOB++/H/M/NZPaVNzY9mtSlOmOwFjisZX0EsL7G/fUpc69dzNxrFwMw+dixXDbzPYZAfVqdhwnLgLERMToiBgJnA4tr3J/0/zbznBlMmXwiz6xaxZhRI1gw//qmR2qb2u4ZZObWiLgEuAPoD8zPzCfr2l9fdt+jz3Lfo882PYYquHHhoqZHaEydhwlk5veB79e5D0m7ho9AlAQYA0mFMZAEGANJhTGQBBgDSYUxkAQYA0mFMZAEGANJhTGQBBgDSYUxkAQYA0mFMZAEGANJhTGQBBgDSYUxkAQYA0mFMZAEGANJhTGQBBgDSYUxkAQYA0mFMZAEdPNeixGxGchtq+VzluXMzANrnk1SG+00Bpk5pJ2DSGpWpcOEiJgUER8uy0MjYnS9Y0lqtx5jEBFXAZcDnymbBgIL6xxKUvtVuWdwBvA+4BWAzFwPeAgh7WGqxOC1zEzKycSI2L/ekSQ1oUoMboqIrwFviYgLgH8Hvl7vWJLabaf/TdgmM6+JiFOBXwFHAHMz887aJ5PUVj3GoHgCGETnocIT9Y0jqSlV/ptwPvAIcCYwHXgoImbXPZik9qpyz+BTwMTM/DlARBwMPADMr3MwSe1V5QTiWmBzy/pmYE0940hqSnfPTfhEWVwHPBwRt9J5zuB0Og8bJO1BujtM2PbAop+Uj21urW8cSU3p7olKV7dzEEnN6vEEYkQMAz4NHAPst217Zv5hjXNJarMqJxD/BXgaGA1cDbwALKtxJkkNqBKDgzPzemBLZt6TmbOBd9Y8l6Q2q/I4gy3l80sR8cfAemBEfSNJakKVGHwuIg4CPglcCxwIfLzWqSS1XZUnKi0pi78ETq53HElN6e5BR9ey/QVRf0tmXrqrh5k4biRLH75uV9+sarRk5fqmR1Av/OLVLTu9rLt7Bst3/SiS+qruHnR0QzsHkdQs30RFEmAMJBXGQBJQ7ZWOjoiIuyJiZVn/vYi4sv7RJLVTlXsGX6fzDVS2AGTmCuDsOoeS1H5VYjA4M3d8MZOtdQwjqTlVYrApIsaw/U1UpgMv1TqVpLar8tyEi4F5wFERsQ5YDZxT61SS2q7KcxOeB04pb6vWLzM39/Q1knY/VV7paO4O6wBk5t/UNJOkBlQ5THilZXk/4DTgqXrGkdSUKocJX2pdj4hrgMW1TSSpEW/mEYiDgcN39SCSmlXlnMETbH9dg/7AMMDzBdIepso5g9NalrcCP8tMH3Qk7WG6jUFE9ANuy8zxbZpHUkO6PWeQma8DP46IkW2aR1JDqhwmvBV4MiIeoeXfjJn5vtqmktR2VWLgey5Ke4EqMXhvZl7euiEivgjcU89IkppQ5XEGp3axbdquHkRSs7p734SPAX8OHB4RK1ouGgIsrXswSe3V3WHCN4EfAF8ArmjZvjkzX651Kklt1937JvySzrdUm9G+cSQ1xVdHlgQYA0mFMZAEGANJhTGQBBgDSYUxkAQYA0mFMZAEGANJhTGQBBgDSYUxkAQYA0mFMZAEGANJhTGQBBgDSYUxkAQYA0mFMZAEGANJhTGQBBiDWl10/mxGHjKcYyeMb3oUVbDpp+v46wumc9mZ7+bjZ53Mbd/8RtMjtVVtMYiI+RGxISJW1rWPvu7c82Zx65Lbmx5DFfXvP4CZn7iKv//uPXz+xu9xx7cXsOYnzzQ9VtvUec9gATC1xtvv8yZNfhcdHR1Nj6GKfmfY73L4uHcAMGj/Azh09Fhe3vjThqdqn9pikJn3Ar4no3ZLG9avYfWqlYwdP7HpUdqm8XMGEXFhRCyPiOUbN21sehyJV//nFa6ZcwEfnnM1gw8Y0vQ4bdN4DDJzXmYel5nHDRs6rOlxtJfbumULX5pzAZOnncEJ73lv0+O0VeMxkPqKzOSrV3+SQ0e/nT8596Kmx2k7Y1CjmefMYMrkE3lm1SrGjBrBgvnXNz2SuvH048u497ZbWLnsAeZ84FTmfOBUfnTfXU2P1TYD6rrhiFgETAGGRsRa4KrM3Kt+G25cuKjpEdQL4yYez82PrWt6jMbUFoPMnFHXbUva9TxMkAQYA0mFMZAEGANJhTGQBBgDSYUxkAQYA0mFMZAEGANJhTGQBBgDSYUxkAQYA0mFMZAEGANJhTGQBBgDSYUxkAQYA0mFMZAEGANJhTGQBBgDSYUxkAQYA0mFMZAEGANJhTGQBBgDSYUxkAQYA0mFMZAEGANJhTGQBBgDSYUxkAQYA0mFMZAEGANJhTGQBBgDSYUxkAQYA0mFMZAEGANJhTGQBBgDSYUxkARAZGbTM7whIjYCLzY9Rw2GApuaHkK9sqf+zN6WmcO6uqBPxWBPFRHLM/O4pudQdXvjz8zDBEmAMZBUGIP2mNf0AOq1ve5n5jkDSYD3DCQVxkASYAxqFRFTI2JVRDwXEVc0PY96FhHzI2JDRKxsepZ2MwY1iYj+wFeAacDRwIyIOLrZqVTBAmBq00M0wRjU53jgucx8PjNfA74FnN7wTOpBZt4LvNz0HE0wBvU5FFjTsr62bJP6JGNQn+him//HVZ9lDOqzFjisZX0EsL6hWaQeGYP6LAPGRsToiBgInA0sbngmaaeMQU0ycytwCXAH8BRwU2Y+2exU6klELAIeBI6MiLUR8ZGmZ2oXH44sCfCegaTCGEgCjIGkwhhIAoyBpMIY7MUi4tfl8yER8Z0erntZRAzu5e1PiYglVbfvcJ1ZEXFdL/f3QkQM7c3XaDtjsIcpz5bslcxcn5nTe7jaZUCvYqDdizHYTUTEqIh4OiJuiIgVEfGdbX+py1/EuRFxP/D+iBgTEbdHxKMRcV9EHFWuNzoiHoyIZRHx2R1ue2VZ7h8R10TEE2U/fxERlwKHAHdHxN3len9UbutHEXFzRBxQtk8tc94PnFnh+zo+Ih6IiMfK5yNbLj6sfB+rIuKqlq85JyIeiYjHI+JrbyaA6kJm+rEbfACj6Hyi00llfT4wpyy/AHy65bp3AWPL8gnAf5TlxcDMsnwx8OuW215Zlj8G3AIMKOsdLfsYWpaHAvcC+5f1y4G5wH50PlNzLJ1P1LoJWNLF9zJl23bgwJZ9nQLcUpZnAS8BBwODgJXAccA44HvAPuV6/9DyPb0xox+9/xjwJvqh5qzJzKVleSFwKXBNWf82QPkL/QfAzRFvPHFy3/L5JOCssvzPwBe72McpwD9m58Opycyuntv/TjpfsGVp2cdAOh/CexSwOjOfLbMsBC7s4Xs6CLghIsbSGbt9Wi67MzN/Xm7ru8AkYCtwLLCs7HsQsKGHfagCY7B72fGx463rr5TP/YBfZOaEirexo6h4nTszc8ZvbIyYUOFrd/RZ4O7MPCMiRgH/2XJZV99vADdk5md6uR/1wHMGu5eREXFiWZ4B3L/jFTLzV8DqiHg/QHT6/XLxUjqfPQnwoZ3s44fARyNiQPn6jrJ9MzCkLD8EnBQRby/XGRwRRwBPA6MjYkzLjD05CFhXlmftcNmpEdEREYOAPy3z3wVMj4jh2+aLiLdV2I96YAx2L08B50XECqAD+OpOrvch4CMR8WPgSba/3NpfAhdHxDI6fwm78g3gv4EV5es/WLbPA34QEXdn5kY6f3EXlVkeAo7KzP+l87DgtnICscqb6P4t8IWIWArseCLwfjoPZx6n81zC8sz8L+BK4Idl33cCb62wH/XAZy3uJspd6CWZOb7hUbSH8p6BJMB7BpIK7xlIAoyBpMIYSAKMgaTCGEgC4P8AjCkSYZk5XsUAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from mlxtend.plotting import plot_confusion_matrix\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "binary1 = np.array([[4, 1],\n",
    "                   [1, 2]])\n",
    "\n",
    "fig, ax = plot_confusion_matrix(conf_mat=binary1)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 144x144 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "binary2 = np.array([[21, 1],\n",
    "                    [3, 1]])\n",
    "\n",
    "fig, ax = plot_confusion_matrix(conf_mat=binary2, figsize=(2, 2))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 2 - Binary absolute and relative with colorbar"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "binary = np.array([[4, 1],\n",
    "                   [1, 2]])\n",
    "\n",
    "fig, ax = plot_confusion_matrix(conf_mat=binary,\n",
    "                                show_absolute=True,\n",
    "                                show_normed=True,\n",
    "                                colorbar=True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 3 - Multiclass relative"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "multiclass = np.array([[2, 1, 0, 0],\n",
    "                       [1, 2, 0, 0],\n",
    "                       [0, 0, 1, 0],\n",
    "                       [0, 0, 0, 1]])\n",
    "\n",
    "fig, ax = plot_confusion_matrix(conf_mat=multiclass,\n",
    "                                colorbar=True,\n",
    "                                show_absolute=False,\n",
    "                                show_normed=True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example 4 - Add Class Names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "multiclass = np.array([[2, 1, 0, 0],\n",
    "                       [1, 2, 0, 0],\n",
    "                       [0, 0, 1, 0],\n",
    "                       [0, 0, 0, 1]])\n",
    "\n",
    "class_names = ['class a', 'class b', 'class c', 'class d']\n",
    "\n",
    "fig, ax = plot_confusion_matrix(conf_mat=multiclass,\n",
    "                                colorbar=True,\n",
    "                                show_absolute=False,\n",
    "                                show_normed=True,\n",
    "                                class_names=class_names)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## API"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "## plot_confusion_matrix\n",
      "\n",
      "*plot_confusion_matrix(conf_mat, hide_spines=False, hide_ticks=False, figsize=None, cmap=None, colorbar=False, show_absolute=True, show_normed=False, class_names=None, figure=None, axis=None)*\n",
      "\n",
      "Plot a confusion matrix via matplotlib.\n",
      "\n",
      "**Parameters**\n",
      "\n",
      "- `conf_mat` : array-like, shape = [n_classes, n_classes]\n",
      "\n",
      "    Confusion matrix from evaluate.confusion matrix.\n",
      "\n",
      "- `hide_spines` : bool (default: False)\n",
      "\n",
      "    Hides axis spines if True.\n",
      "\n",
      "- `hide_ticks` : bool (default: False)\n",
      "\n",
      "    Hides axis ticks if True\n",
      "\n",
      "- `figsize` : tuple (default: (2.5, 2.5))\n",
      "\n",
      "    Height and width of the figure\n",
      "\n",
      "- `cmap` : matplotlib colormap (default: `None`)\n",
      "\n",
      "    Uses matplotlib.pyplot.cm.Blues if `None`\n",
      "\n",
      "- `colorbar` : bool (default: False)\n",
      "\n",
      "    Shows a colorbar if True\n",
      "\n",
      "- `show_absolute` : bool (default: True)\n",
      "\n",
      "    Shows absolute confusion matrix coefficients if True.\n",
      "    At least one of  `show_absolute` or `show_normed`\n",
      "    must be True.\n",
      "\n",
      "- `show_normed` : bool (default: False)\n",
      "\n",
      "    Shows normed confusion matrix coefficients if True.\n",
      "    The normed confusion matrix coefficients give the\n",
      "    proportion of training examples per class that are\n",
      "    assigned the correct label.\n",
      "    At least one of  `show_absolute` or `show_normed`\n",
      "    must be True.\n",
      "\n",
      "- `class_names` : array-like, shape = [n_classes] (default: None)\n",
      "\n",
      "    List of class names.\n",
      "    If not `None`, ticks will be set to these values.\n",
      "\n",
      "- `figure` : None or Matplotlib figure  (default: None)\n",
      "\n",
      "    If None will create a new figure.\n",
      "\n",
      "- `axis` : None or Matplotlib figure axis (default: None)\n",
      "\n",
      "    If None will create a new axis.\n",
      "\n",
      "**Returns**\n",
      "\n",
      "- `fig, ax` : matplotlib.pyplot subplot objects\n",
      "\n",
      "    Figure and axis elements of the subplot.\n",
      "\n",
      "**Examples**\n",
      "\n",
      "For usage examples, please see\n",
      "    [http://rasbt.github.io/mlxtend/user_guide/plotting/plot_confusion_matrix/](http://rasbt.github.io/mlxtend/user_guide/plotting/plot_confusion_matrix/)\n",
      "\n",
      "\n"
     ]
    }
   ],
   "source": [
    "with open('../../api_modules/mlxtend.plotting/plot_confusion_matrix.md', 'r') as f:\n",
    "    s = f.read() \n",
    "print(s)"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  },
  "toc": {
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
